package com.sap.sap_mangers.service;

import com.sap.sap_mangers.pojo.SapBill;
import com.sap.sap_mangers.until.SimpleJson;
import org.springframework.web.multipart.MultipartFile;

import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.List;

/**
 * @author 阿东
 * @date 2022/8/29 [15:00]
 */
public interface BillService {

    /**
     * 添加账单
     * <p>
     * 抛出SQLException说明是数据库操作导致的异常；抛出IOException说明是图片格式不正确(这个是主动抛出的)
     * 在进行事务处理捕获异常时要分别捕获处理，没必要区分时(比如图片为空，不会进行格式建议抛出IOException)可以就捕获Exception
     *
     * @param type      账单类型(0:支出，1:收入)
     * @param context   账单标题
     * @param price     账单金额
     * @param timestamp 账单消费日期
     * @param note      账单备注
     * @param images    账单相关图片(收入相关的账单记录，图片可以没有，支出必须附带图片)
     * @param username  账单创建人的学号
     * @param name      账单创建人的姓名
     * @return 提示符
     * @throws Exception 检查图片格式发现格式不正确时主动抛出
     */
    SimpleJson addBill(Integer type, String context, BigDecimal price, Timestamp timestamp, String note, List<MultipartFile> images, String username, String name) throws Exception;


    /**
     * 获取账单信息
     *
     * @param type 账单类型
     * @param year 账单年份
     * @return 账单
     */
    List<SapBill> getBill(Integer type, Integer year);

    /**
     * 获取账单总值
     *
     * @param type 账单类型
     * @param year 账单年份
     * @return 账单
     */
    Integer getSumBill(Integer type, Integer year);
}
